package cn.wjssl.domain.strategy.service;

import cn.wjssl.domain.strategy.model.entity.RaffleAwardEntity;
import cn.wjssl.domain.strategy.model.entity.RaffleFactorEntity;

import java.util.Date;

/**
 * 执行抽奖的接口
 */
public interface IStrategyService {

    /**
     * 执行抽奖；用抽奖因子入参，执行抽奖计算，返回奖品信息
     *
     * @param raffleFactorEntity 抽奖因子, 什么用户在抽奖, 用的是哪一种策略
     * @return 抽到的奖品
     */
    RaffleAwardEntity performRaffle(RaffleFactorEntity raffleFactorEntity);

    // 同样, 将 RaffleFactorEntity 的参数作为传参, 方便外部调用
    RaffleAwardEntity performRaffle(Long strategyId, String userId, Date endDateTime);
}
